# All files WhatsAppCloudFlowController.js

0% Statements 0/30
0% Branches 0/21
0% Functions 0/3
0% Lines 0/30

Press n or j to go to the next uncovered block, b, p or k for the previous block.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52

     const WhatsAppCloudFlow = require('../models/WhatsAppCloudFlow');
    const { logger } = require('../config/logger');

    class WhatsAppCloudFlowController {
      static async list(req, res) {
        try {
          const tenantId = req.tenantId || req.user?.tenantId || 1;
          const { accountId } = req.query;
          const flows = await WhatsAppCloudFlow.listByTenant(tenantId, accountId ? String(accountId) : null);
          res.json({ success: true, data: flows });
        } catch (error) {
          logger.error('Error listing flows', { error: error.message });
          res.status(500).json({ success: false, error: 'Failed to load flows' });
        }
      }

      static async save(req, res) {
        try {
          const tenantId = req.tenantId || req.user?.tenantId || 1;
          const flow = req.body || {};
          if (!flow.id || !flow.name) {
            return res.status(400).json({ success: false, error: 'Flow id and name are required' });
          }
          const saved = await WhatsAppCloudFlow.upsert(tenantId, flow);
          res.json({ success: true, data: saved });
        } catch (error) {
          logger.error('Error saving flow', { error: error.message });
          res.status(500).json({ success: false, error: 'Failed to save flow' });
        }
      }

      static async delete(req, res) {
        try {
          const tenantId = req.tenantId || req.user?.tenantId || 1;
          const { flowId } = req.params;
          if (!flowId) {
            return res.status(400).json({ success: false, error: 'Flow id is required' });
          }
          const removed = await WhatsAppCloudFlow.deleteByFlowId(tenantId, flowId);
          if (!removed) {
            return res.status(404).json({ success: false, error: 'Flow not found' });
          }
          res.json({ success: true });
        } catch (error) {
          logger.error('Error deleting flow', { error: error.message });
          res.status(500).json({ success: false, error: 'Failed to delete flow' });
        }
      }
    }

    module.exports = WhatsAppCloudFlowController;